/**
 * API 配置文件
 */

const ONLINE = true;

// API 基础配置
export const API_CONFIG = {
  // 开发环境
  DEV_BASE_URL: 'http://127.0.0.1:8080',
  // 生产环境
  PROD_BASE_URL: 'https://api.smartagriculture.com',
  ONLINE_PROD_BASE_URL: '', // 使用相对路径
  // 请求超时时间
  TIMEOUT: 10000,
  // 请求重试次数
  RETRY_COUNT: 3
}

// 获取当前环境的 API 基础 URL
export const getBaseUrl = () => {
  if (ONLINE) {
	  return API_CONFIG.ONLINE_PROD_BASE_URL;
  }
  // 在开发环境中使用开发服务器
  // #ifdef H5
  return API_CONFIG.DEV_BASE_URL
  // #endif

  // 在生产环境中使用生产服务器
  // #ifdef MP-WEIXIN || APP-PLUS
  return API_CONFIG.PROD_BASE_URL
  // #endif

  // 默认使用开发环境
  return API_CONFIG.DEV_BASE_URL
}

// API 端点配置
export const API_ENDPOINTS = {
  // 认证相关
  AUTH: {
    LOGIN: '/api/auth/login',
    REGISTER: '/api/auth/register',
    LOGOUT: '/api/auth/logout'
  },

  // 用户相关
  USER: {
    ME: '/api/users/me',
    UPDATE_ME: '/api/users/me',
    DELETE_ME: '/api/users/me',
    CHANGE_PASSWORD: '/api/users/me/change-password',
    UPLOAD_AVATAR: '/api/users/me/avatar'
  },

  // 大棚相关
  GREENHOUSE: {
    LIST: '/api/greenhouses',
    CREATE: '/api/greenhouses',
    DETAIL: '/api/greenhouses/{id}',
    UPDATE: '/api/greenhouses/{id}',
    DELETE: '/api/greenhouses/{id}',
    SENSOR_DATA: '/api/greenhouses/{id}/sensor-data',
    ALL_SENSOR_DATA: '/api/greenhouses/{id}/sensor-data/all'
  },

  // 作物相关
  CROP: {
    OPTIONS: '/api/crops/options'
  },

  // 新闻相关
  NEWS: {
    LIST: '/api/news',
    DETAIL: '/api/news/{id}',
    LIKE: '/api/news/{id}/like',
    COMMENTS: '/api/news/{id}/comments',
    COMMENT_LIKE: '/api/comments/{id}/like'
  },

  // 便签相关
  NOTES: {
    LIST: '/api/notes',
    CREATE: '/api/notes',
    DETAIL: '/api/notes/{id}',
    UPDATE: '/api/notes/{id}',
    DELETE: '/api/notes/{id}'
  }
}

// HTTP 状态码
export const HTTP_STATUS = {
  OK: 200,
  CREATED: 201,
  BAD_REQUEST: 400,
  UNAUTHORIZED: 401,
  FORBIDDEN: 403,
  NOT_FOUND: 404,
  INTERNAL_SERVER_ERROR: 500
}

// 业务状态码
export const BUSINESS_CODE = {
  SUCCESS: 200,
  FAIL: 400,
  UNAUTHORIZED: 401,
  FORBIDDEN: 403,
  NOT_FOUND: 404,
  SERVER_ERROR: 500
}

// 存储键名
export const STORAGE_KEYS = {
  TOKEN: 'token',
  USER_INFO: 'userInfo',
  GREENHOUSE_LIST: 'greenhouseList',
  SETTINGS: 'settings'
}

// 请求头配置
export const REQUEST_HEADERS = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}
